With the advancements in mobile phone and cellular network technology, numerous electronic devices can now be used for web browsing, reading online documents and watching multimedia through the Internet. However, due to the inherent network limitations and complications of data security, downloading and storing data on the devices with a smooth user experience cannot typically be utilized without sacrificing the security of the data.
It is generally accepted that for applications that manage critical data, a remote streaming solution shall be utilized. As a non-limiting example, healthcare institutions have to be Health Insurance Portability and Accountability Act of 1996 (HIPAA) compliant, to prevent healthcare fraud and abuse. Although it is not necessarily imposed that these institutions use remote desktop infrastructures, it is regarded as the de-facto standard due to its ease of installation and management, while maintaining very high standards when it comes to security.
In regards to remote desktop/mobile streaming technologies, traditional solutions use tile-based protocols, such as Virtual Network Computing (VNC) or Remote Desktop Protocol (RDP). These technologies typically use relatively simple screen scraping algorithms, e.g. when there is a change of the remote frame buffer, the protocol will encode that information using an image encoder (e.g. JPEG, PNG), and send it over the network.
As the number of clients that are simultaneously connected to the server increases, it becomes more complicated to deliver reliable data towards each client. This can be especially true for real-time interactive streaming. In environments where remote desktops are used, it is not typically possible to pre-encode the video streams or take advantage of segmented retrieval mechanisms as is done in modern media streaming protocols.
Another issue is the security of media streaming architectures. Typically, remote access streaming handlers are deeply integrated into highly privileged areas of the guest operating system (OS), either as a kernel driver or as a system service that bundles together privileges needed for screen scraping and network access.